package com.zpark.signup.utils;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.HashMap;
import java.util.Map;

/**
 * 返回数据
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "统一响应数据对象", description = "用于统一返回值类型")
public class R {

    @ApiModelProperty("响应状态码")
    private long code;
    @ApiModelProperty("响应信息")
    private String message;
    @ApiModelProperty("响应结果集")
    private Object obj;

    /**
     * 成功返回结果
     *
     * @param message
     * @return
     */
    public static R ok(String message) {
        return new R(200, message, null);
    }

    /**
     * 成功返回结果
     *
     * @param message
     * @param obj
     * @return
     */
    public static R ok(String message, Object obj) {
        return new R(200, message, obj);
    }

    /**
     * 失败返回结果
     *
     * @param message
     * @return
     */
    public static R error(String message) {
        return new R(400, message, null);
    }

    /**
     * 失败返回结果
     *
     * @param message
     * @param obj
     * @return
     */
    public static R error(String message, Object obj) {
        return new R(400, message, obj);
    }

    /**
     * 失败返回结果
     *
     * @param message
     * @param obj
     * @param code
     * @return
     */
    public static R error(long code, String message, Object obj) {
        return new R(code, message, obj);
    }
}
